1. Field of the Invention
The present invention generally relates to data processing and more particularly to debugging code.
2. Description of the Related Art
A programmer develops a software program by producing and entering source code into files using a text editor program. The computer then creates an executable program by translating the source code into machine code. The machine code is the rudimentary instructions understood by a computer. Illustratively, the foregoing software development process is accomplished by running a series of programs. These programs typically include a compiler for translating the source code into machine code and a linker to link the machine code together to form a program.
When developing computer software, it is necessary to perform a function termed “debugging”. Debugging involves testing and evaluating the software to find and correct any errors and improper logic operation. An effective debugger program is necessary for rapid and efficient development of software and typically provides functions including breakpoints, run-to-cursor, step into, step over and the like.
The run-to-cursor function allows a user to place a cursor on a selected statement and then execute the program from a current stopped position to the cursor. When execution reaches the line at which the cursor is located, the debugger gains control. In this way, the user may observe the effects of running the portion of code from the current stopped position to the cursor position. If unexpected results are identified, the user has successfully located the source of a problem and may then take remedial steps to correct the problem.
While the run-to-cursor function provides some advantages in identifying problems in the code, it is limited in that a user is limited to specifying only a particular line number to run to. To illustrate the limitation, consider, for example, a user desiring to halt execution on a particular module of a program. In this case, the run-to-cursor function is not capable of producing the desired result because the execution path may not be known and, therefore, the entry point to the module from the current stopped position is not known. Instead, the user must manually identify the program containing the module, identify the module within the program, identify each routine and then set a breakpoint on each entry point to each routine of the code (or set a breakpoint on each statement of the code). Such an approach is burdensome and error prone.
Therefore, there is a need for a method, article of manufacture and system in which execution proceeds to a specified code portion.